﻿Imports Capa_de_Acceso_a_Datos


Public Class frmBuscarMedico
    Public frmLlamada As String
    Private tablaMedicos As DataTable
    Private tablaTipoMatriculaMedica As DataTable
    Private tablaEspecialidadMedica As DataTable

    Private Sub frmBuscarMedico_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        Me.Dispose()
    End Sub

    Private Sub BuscarMedico_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        With dgvMedicos
            ' alternar color de filas  
            .AlternatingRowsDefaultCellStyle.BackColor = Color.FloralWhite
            .DefaultCellStyle.BackColor = Color.Beige
        End With

        tablaMedicos = MedicoDAO.obtenerMedicos(0)
        cargarComboTipoMatricula()
        cargarComboEspecialidadMedica()
    End Sub

    Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click
        If dgvMedicos.SelectedRows.Count = 1 Then
            Select Case frmLlamada
                Case "frmCargaRecetarioSolidario"
                    frmCargaRecetarioSolidario.cargarMedico(dgvMedicos.SelectedRows(0).Cells("MedicoId").Value, dgvMedicos.SelectedRows(0).Cells("MedicoApellido").Value, dgvMedicos.SelectedRows(0).Cells("MedicoNombre").Value, dgvMedicos.SelectedRows(0).Cells("MedicoNroMatricula").Value, dgvMedicos.SelectedRows(0).Cells("TipoMatriculaMedicoId").Value, dgvMedicos.SelectedRows(0).Cells("EspecialidadMedicaId").Value, dgvMedicos.SelectedRows(0).Cells("EspecialidadMedicaNombre").Value)
                Case "frmCargaPAMI"
                    frmCargaPAMI.cargarMedico(dgvMedicos.SelectedRows(0).Cells("MedicoId").Value, dgvMedicos.SelectedRows(0).Cells("MedicoApellido").Value, dgvMedicos.SelectedRows(0).Cells("MedicoNombre").Value, dgvMedicos.SelectedRows(0).Cells("MedicoNroMatricula").Value, dgvMedicos.SelectedRows(0).Cells("TipoMatriculaMedicoId").Value, dgvMedicos.SelectedRows(0).Cells("EspecialidadMedicaId").Value, dgvMedicos.SelectedRows(0).Cells("EspecialidadMedicaNombre").Value)
                Case "frmCargarReceta"
                    frmCargarReceta.cargarMedico(dgvMedicos.SelectedRows(0).Cells("MedicoId").Value, dgvMedicos.SelectedRows(0).Cells("MedicoApellido").Value, dgvMedicos.SelectedRows(0).Cells("MedicoNombre").Value, dgvMedicos.SelectedRows(0).Cells("MedicoNroMatricula").Value, dgvMedicos.SelectedRows(0).Cells("TipoMatriculaMedicoId").Value, dgvMedicos.SelectedRows(0).Cells("EspecialidadMedicaId").Value, dgvMedicos.SelectedRows(0).Cells("EspecialidadMedicaNombre").Value)
            End Select

        End If
        Me.Dispose()
    End Sub

    Private Sub dgvMedicos_CellContentDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvMedicos.CellContentDoubleClick
        If dgvMedicos.SelectedRows.Count = 1 Then
            Select Case frmLlamada
                Case "frmCargaRecetarioSolidario"
                    frmCargaRecetarioSolidario.cargarMedico(dgvMedicos.SelectedRows(0).Cells("MedicoId").Value, dgvMedicos.SelectedRows(0).Cells("MedicoApellido").Value, dgvMedicos.SelectedRows(0).Cells("MedicoNombre").Value, dgvMedicos.SelectedRows(0).Cells("MedicoNroMatricula").Value, dgvMedicos.SelectedRows(0).Cells("TipoMatriculaMedicoId").Value, dgvMedicos.SelectedRows(0).Cells("EspecialidadMedicaId").Value, dgvMedicos.SelectedRows(0).Cells("EspecialidadMedicaNombre").Value)
                Case "frmCargaPAMI"
                    frmCargaPAMI.cargarMedico(dgvMedicos.SelectedRows(0).Cells("MedicoId").Value, dgvMedicos.SelectedRows(0).Cells("MedicoApellido").Value, dgvMedicos.SelectedRows(0).Cells("MedicoNombre").Value, dgvMedicos.SelectedRows(0).Cells("MedicoNroMatricula").Value, dgvMedicos.SelectedRows(0).Cells("TipoMatriculaMedicoId").Value, dgvMedicos.SelectedRows(0).Cells("EspecialidadMedicaId").Value, dgvMedicos.SelectedRows(0).Cells("EspecialidadMedicaNombre").Value)
                Case "frmCargarReceta"
                    frmCargarReceta.cargarMedico(dgvMedicos.SelectedRows(0).Cells("MedicoId").Value, dgvMedicos.SelectedRows(0).Cells("MedicoApellido").Value, dgvMedicos.SelectedRows(0).Cells("MedicoNombre").Value, dgvMedicos.SelectedRows(0).Cells("MedicoNroMatricula").Value, dgvMedicos.SelectedRows(0).Cells("TipoMatriculaMedicoId").Value, dgvMedicos.SelectedRows(0).Cells("EspecialidadMedicaId").Value, dgvMedicos.SelectedRows(0).Cells("EspecialidadMedicaNombre").Value)
            End Select
        End If
    End Sub

    Private Sub btnBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuscar.Click
        If btnBuscar.Text = "&Guardar" AndAlso validarCampos() Then
            MedicoDAO.insertarMedico(txtMedicoNombre.Text, txtMedicoApellido.Text, txtNroMatricula.Text, cboTipoMatricula.SelectedValue, cboEspecialidadMedica.SelectedValue)
            limpiarCampos()
            habilitarBuscarMedico()
            Exit Sub
        End If
        If btnBuscar.Text = "&Buscar" Then

            dgvMedicos.DataSource = MedicoDAO.buscarMedicos(1, txtMedicoNombre.Text, txtMedicoApellido.Text, Constante.MENOSUNO, Constante.MENOSUNO)
        End If
    End Sub

    Private Sub btnAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregar.Click
        If btnAgregar.Text = "&Agregar" Then
            limpiarCampos()
            habilitarGuardarMedico()
            Exit Sub
        End If
        If btnAgregar.Text = "&Cancelar" Then
            limpiarCampos()
            habilitarBuscarMedico()
            Exit Sub
        End If
    End Sub

    Private Function validarCampos() As Boolean
        If txtMedicoApellido.Text = Constante.VACIO Then
            MsgBox("El Apellido del médico no puede quedar vacío.", MsgBoxStyle.OkOnly, "Falta Apellido")
            Return False
        End If

        If txtMedicoNombre.Text = Constante.VACIO Then
            MsgBox("El Nombre del médico no puede quedar vacío.", MsgBoxStyle.OkOnly, "Falta Nombre")
            Return False
        End If

        If Not IsNumeric(txtNroMatricula.Text) Then
            MsgBox("Error en el número de matrícula ingresado.", MsgBoxStyle.OkOnly, "Error en matrícula")
            Return False
        End If

        Return True
    End Function

    Private Sub limpiarCampos()
        txtMedicoApellido.Text = Constante.VACIO
        txtMedicoNombre.Text = Constante.VACIO
        txtNroMatricula.Text = Constante.VACIO
        cboTipoMatricula.SelectedIndex = 0
        cboEspecialidadMedica.SelectedIndex = 0
    End Sub

    Private Sub cargarComboTipoMatricula()
        cboTipoMatricula.DataSource = TipoMatriculaMedicoDAO.obtenerTiposMatriculasMedicos(0)
        cboTipoMatricula.DisplayMember = "TipoMatriculaMedicoNombre"
        cboTipoMatricula.ValueMember = "TipoMatriculaMedicoId"
        cboTipoMatricula.SelectedIndex = 0
    End Sub

    Private Sub cargarComboEspecialidadMedica()
        cboEspecialidadMedica.DataSource = EspecialidadMedicaDAO.obtenerEspecialidadesMedicas(0)
        cboEspecialidadMedica.DisplayMember = "EspecialidadMedicaNombre"
        cboEspecialidadMedica.ValueMember = "EspecialidadMedicaId"
        cboEspecialidadMedica.SelectedIndex = 0
    End Sub

    Private Sub habilitarGuardarMedico()
        lblMedicoApellido.Enabled = True
        lblMedicoNombre.Enabled = True
        txtMedicoApellido.Enabled = True
        txtMedicoNombre.Enabled = True
        lblNroMatricula.Enabled = True
        lblTipoMatricula.Enabled = True
        txtNroMatricula.Enabled = True
        cboTipoMatricula.Enabled = True
        lblEspecialidadMedica.Enabled = True
        cboEspecialidadMedica.Enabled = True
        btnAgregar.Text = "&Cancelar"
        btnBuscar.Text = "&Guardar"
        btnCancelar.Enabled = False
        btnAceptar.Enabled = False
        dgvMedicos.DataSource = Nothing
    End Sub

    Private Sub habilitarBuscarMedico()
        lblMedicoApellido.Enabled = True
        lblMedicoNombre.Enabled = True
        txtMedicoApellido.Enabled = True
        txtMedicoNombre.Enabled = True
        lblNroMatricula.Enabled = False
        lblTipoMatricula.Enabled = False
        txtNroMatricula.Enabled = False
        cboTipoMatricula.Enabled = False
        lblEspecialidadMedica.Enabled = False
        cboEspecialidadMedica.Enabled = False
        btnAgregar.Text = "&Agregar"
        btnBuscar.Text = "&Buscar"
        btnCancelar.Enabled = True
        btnAceptar.Enabled = True

    End Sub

    Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        Me.Dispose()
    End Sub

End Class